package projorientado.anpr.impl;

import java.util.Vector;

/**
 * Propriedades para o sistema de reconhecimento de placas.
 */
public class BPlateRecognizerProps {

    /** Máxima distância vertical entre os digitos da placa. */
    public int plateVertMaxDiff = 3;
    
    /** Vetor ordenado de blocos da placa. */
    public Vector<BPlateRecognizerBlock> blocks = new Vector();
    
    /** Número total de segmentos da placa. */
    public int numChars = 0;
    
    /** Coeficiente de normalização de brilho. Para não usar definir -1. */
    public float normalizeThresholding = -1;
    
    /** Coeficiente de adptive thresholding. */
    public int adptiveThresholdingRadius = 5;
    
    /** Largura mínima de um digito da placa. */
    public int plateCharWidthMin = 2;
    /** Largura máxima de um digito da placa. */
    public int plateCharWidthMax = 16;
    
    /** Algura mínima de um digito da placa. */
    public int plateCharHeightMin = 14;
    /** Algura máxima de um digito da placa. */
    public int plateCharHeightMax = 24;
    
    /** Mínima distância horizontal entre os digitos da placa. */
    public int plateHorzMinDiff = (int)(plateCharWidthMin*1.2);
    /** Máxima distância horizontal entre os digitos da placa. */
    public int plateHorzMaxDiff = (int)(plateCharWidthMin*1.2);
    
    public float improveLinearPoint = -1;
    public float improveLinearDiff = 0.1f;
    
    public float improveSin = -1;
    
    public void compileInformations() {
        numChars = 0;
        for(int i = 0; i < blocks.size(); i++) {
            numChars += blocks.elementAt(i).numSegments;
        }
    }
    
    public BPlateRecognizerProps loadFromString(String s) {
        BPlateRecognizerProps ret = new BPlateRecognizerProps();
        return ret;
    }
}
